/**
 * 
 */
package com.gxa.ehome.dao;

import java.util.List;

import com.gxa.ehome.entity.UserBase;

/**
 * 实现User持久化方面的操作接口
 * @author bilei
 * @date 2021年3月8日
 */
public interface UserDaoBase {
	/**
	 * 根据id查询User对象的方法
	 * @param id 目标用户的编号
	 * @return 返回id对应的User对象, 如果没有找到则返回null
	 * @throws Exception 
	 */
	UserBase selectById(Integer id) throws Exception ;
	
	/**
	 * 根据name查询User对象的方法
	 * @param name 目标用户的姓名(唯一的)
	 * @return 返回id对应的User对象, 如果没有找到则返回null
	 * @throws Exception 
	 */
	UserBase selectByName(String name) throws Exception ;

	/**
	 * 全查询
	 * @return 返回查询到的所有用户的集合
	 */
	List<UserBase> selectAll() throws Exception;

	/**
	 * 分页查询
	 * @param page 要显示的页数
	 * @param size 每页记录数
	 * @return 分页查找到的数据,并添加到集合中
	 */
	List<UserBase> selectByPage(int page, int size) throws Exception;
	
	/**
	 * 添加用户对象的方法
	 * @param user 目标用户对象
	 * @return 返回影响的行数
	 * @throws Exception 
	 */
	Integer insert(UserBase user) throws Exception ;
	
	/**
	 * 根据id删除用户的方法
	 * @param id 目标用户的id
	 * @return 返回影响的行数
	 */
	Integer deleteById(Integer id) throws Exception;
	
	/**
	 * 修改目标User的方法
	 * @param id 目标用户的id
	 * @param user 要修改的特征所封装的User对象
	 */
	void update(Integer id, UserBase user) throws Exception;



}
